package com.kaige.asktaoplugin60.utils;

import io.netty.buffer.ByteBuf;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;

/**
 * 数据发送工具类
 * 提供统一的数据发送接口
 */
@Slf4j
public class DataSender {
    
    /**
     * 发送数据到客户端
     * 
     * @param clientChannel 客户端Channel
     * @param data 要发送的数据
     */
    public static void sendDataToClient(Channel clientChannel, byte[] data) {
        if (clientChannel != null && clientChannel.isActive()) {
            clientChannel.writeAndFlush(data);
            log.debug("发送数据到客户端: {}，数据长度: {}", clientChannel.remoteAddress(), data.length);
        } else {
            log.warn("客户端Channel不可用，无法发送数据");
        }
    }

    /**
     * 发送数据到玩家客户端
     */
    public static void sendDataToClient(Channel clientChannel, ByteBuf byteBuf) {
        if (clientChannel != null && clientChannel.isActive()) {
            clientChannel.writeAndFlush(byteBuf);
            log.debug("发送数据到玩家客户端: {}，数据长度: {}", clientChannel.remoteAddress(), byteBuf.readableBytes());
        } else {
            log.warn("玩家客户端Channel不可用，无法发送数据");
        }
    }

    /**
     * 发送数据到服务端
     * 
     * @param serverChannel 服务端Channel
     * @param data 要发送的数据
     */
    public static void sendDataToServer(Channel serverChannel, byte[] data) {
        if (serverChannel != null && serverChannel.isActive()) {
            serverChannel.writeAndFlush(data);
            log.debug("发送数据到服务端: {}，数据长度: {}", serverChannel.remoteAddress(), data.length);
        } else {
            log.warn("服务端Channel不可用，无法发送数据");
        }
    }
}